package dal

type InitDAO struct {
	Q                   *Query
	CartDAO             *CartDAO
	ContactUsOptionDAO  *ContactUsOptionDAO
	RegionDAO           *RegionDAO
	ProductSpecValueDAO *ProductSpecValueDAO
	UserReportDAO       *UserReportDAO
	UserDAO             *UserDAO
	UserAddressDAO      *UserAddressDAO
	ProductSpecDAO      *ProductSpecDAO
	UserPointsLogDAO    *UserPointsLogDAO
	OrderDAO            *OrderDAO
	OrdersItemDAO       *OrdersItemDAO
	ProductDAO          *ProductDAO
	CategoryDAO         *CategoryDAO
	ProductItemDAO      *ProductItemDAO
}

func NewInitDAO() *InitDAO {
	return &InitDAO{
		Q:                   Q,
		CartDAO:             newCartDAO(),
		ContactUsOptionDAO:  newContactUsOptionDAO(),
		RegionDAO:           newRegionDAO(),
		ProductSpecValueDAO: newProductSpecValueDAO(),
		UserReportDAO:       newUserReportDAO(),
		UserDAO:             newUserDAO(),
		UserAddressDAO:      newUserAddressDAO(),
		ProductSpecDAO:      newProductSpecDAO(),
		UserPointsLogDAO:    newUserPointsLogDAO(),
		OrderDAO:            newOrderDAO(),
		OrdersItemDAO:       newOrdersItemDAO(),
		ProductDAO:          newProductDAO(),
		CategoryDAO:         newCategoryDAO(),
		ProductItemDAO:      newProductItemDAO(),
	}
}
